[C] Decimal -> Binario

Publicado por Enzo de Brito Ferber 05/04/2006

[ Hits: 7.748 ]

Homepage: http://www.maximasonorizacao.com.br

Download binario.c




Programa que converte numeros decimais em binario usando operadores bit-bit padrões do C.
Muito bom para se entender operadores bit-bit e conversao de numeros...

  



Esconder código-fonte

/*
 * Programa: Binário
 * Arquivo: binario.c
 * Autor: Enzo Ferber 'Slackware_10'
 */
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define FLUSH __fpurge(stdin); //fflush(stdin) em sistemas windows

int converter(int num){
    printf("%d", (num & 0x80) / 0x80); //bit 7
    printf("%d", (num & 0x40) / 0x40); //bit 6
    printf("%d", (num & 0x20) / 0x20); //bit 5
    printf("%d", (num & 0x10) / 0x10); //bit 4
    printf("%d", (num & 0x08) / 0x08); //bit 3
    printf("%d", (num & 0x04) / 0x04); //bit 2
    printf("%d", (num & 0x02) / 0x02); //bit 1
    printf("%d", (num & 0x01) / 0x01); //bit 0
    /* Quando ha uma coversao decimal->binario, o bit 7 vem em 
     * primeiro lugar, e o 0 em ultimo.
     * Exemplo: Converter 65 (A) em binario
     * 65 | 2 (resto 1) bit 0
     * 32 | 2 (resto 0) bit 1
     * 16 | 2 (resto 0) bit 2
     * ...
     * Depois se inverte os bits:
     * B = bit
     * B7 B6 B5 B4 B3 B2 B1 B0 
     */
}

int main(void){
    int num;
    while(1){
        system("clear"); //cls em sistemas windows
        printf("Numero a converter: ");
        FLUSH
        scanf("%d", &num);
        if(num == -1) break; //garante um loop nao infinito
        converter(num);
        FLUSH
        getchar();
    }
    return 0;
}

Scripts recomendados

Exemplo de uso de Graphics.h

Contagem de elementos de um array

Comando strlen

Consultar informação do fstab via C

Regra de Horner para cálculo do polinômio


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts